import {
  userLogin
} from '../api'
const app = getApp();
Page({
  data: {
    userInfo: null,
    token: null,
    selectHeight: 0,
    isLoggedIn: false,
    isShow: false
  },

  onLoad() {
    // 获取胶囊按钮高度
    const res = wx.getMenuButtonBoundingClientRect()
    this.setData({
      selectHeight: res.height
    })
  },

  onShow() {
    
  },

  // 处理登录
  handleLogin() {
    wx.showModal({
      title: '温馨提示',
      content: '亲，授权微信登录后才能正常使用小程序！',
      showCancel: false,
      success: (res) => {
        if (res.confirm) {
          wx.getUserProfile({
            desc: '用于完善个人资料',
            lang: 'zh_CN',
            success: async (res) => {
              try {
                wx.showLoading({
                  title: '登录中...'
                })

                // 获取code
                const loginRes = await wx.login()

                // 构建登录参数，确保包含用户信息
                const params = {
                  code: loginRes.code,
                  avatarUrl: res.userInfo.avatarUrl,
                  nickName: res.userInfo.nickName,
                  gender: res.userInfo.gender,
                  rawData: res.rawData, // 添加原始数据
                  signature: res.signature, // 添加签名
                  encryptedData: res.encryptedData, // 添加加密数据
                  iv: res.iv // 添加解密向量
                }

                const loginResult = await userLogin(params)

                wx.hideLoading()

                if (loginResult.code === 1) {
                  // 保存完整的用户信息
                  wx.setStorageSync('userInfo', res.userInfo) // 存储完整的用户信息
                  wx.setStorageSync('token', loginResult.data.token)
                  wx.setStorageSync('userId', loginResult.data.userId)
                  wx.setStorageSync('avatarUrl', loginResult.data.avatarUrl)
                  wx.setStorageSync('name', loginResult.data.name)
                  app.initChat();

                  wx.showToast({
                    title: '登录成功',
                    icon: 'success',
                    duration: 1500
                  })
                  wx.switchTab({
                    url: '/pages/index/index'
                  })
                } else {
                  throw new Error(loginResult.msg || '登录失败')
                }
              } catch (error) {
                wx.hideLoading()
                wx.showToast({
                  title: error.message || '登录失败',
                  icon: 'none'
                })
              }
            },
            fail: (err) => {
              console.error('获取用户信息失败：', err)
              wx.showToast({
                title: '请允许授权后继续',
                icon: 'none'
              })
            }
          })
        }
      }
    })
  },

  // 初始化方法
  init() {
    // 这里添加你的初始化逻辑
  },

  getPhoneNumber(e) {
    console.log("获取手机号回调", e.detail);
    if (e.detail.code) {
      // 用户同意授权
      wx.request({
        url: '',
        method: 'POST',
        data: {
          code: e.detail.code
        },
        success: (res) => {
          if (res.data.success) {
            // 登录成功
            wx.setStorageSync('token', res.data.token);
            wx.setStorageSync('userInfo', res.data.userInfo);

            wx.showToast({
              title: '登录成功',
              icon: 'success'
            });

            setTimeout(() => {
              wx.switchTab({
                url: '/pages/index/index'
              });
            }, 1500);
          } else {
            wx.showToast({
              title: res.data.message || '登录失败',
              icon: 'none'
            });
          }
        },
        fail: () => {
          wx.showToast({
            title: '网络错误',
            icon: 'none'
          });
        }
      });
    } else {
      // 用户拒绝授权
      wx.showToast({
        title: '需要授权手机号才能登录',
        icon: 'none'
      });
    }
  },

  laterLogin() {
    wx.switchTab({
      url: '/pages/index/index'
    });
  }
})